package model.mensalidade;

import java.util.Date;

import model.pessoa.Socio;

public class Mensalidade {

	private long id;
	private Date dataVencimento;
	private Socio socio;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Date getDataVencimento() {
		return dataVencimento;
	}

	public void setDataVencimento(Date dataVencimento) {
		this.dataVencimento = dataVencimento;
	}

	public Socio getSocio() {
		return socio;
	}

	public void setSocio(Socio socio) {
		this.socio = socio;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((dataVencimento == null) ? 0 : dataVencimento.hashCode());
		result = prime * result + (int) (id ^ (id >>> 32));
		result = prime * result + ((socio == null) ? 0 : socio.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Mensalidade other = (Mensalidade) obj;
		if (dataVencimento == null) {
			if (other.dataVencimento != null)
				return false;
		} else if (!dataVencimento.equals(other.dataVencimento))
			return false;
		if (id != other.id)
			return false;
		if (socio == null) {
			if (other.socio != null)
				return false;
		} else if (!socio.equals(other.socio))
			return false;
		return true;
	}

	public Mensalidade(long id, Date dataVencimento, Socio socio) {
		super();
		this.id = id;
		this.dataVencimento = dataVencimento;
		this.socio = socio;
	}

	public Mensalidade() {
		super();
	}

	public Mensalidade(Date dataVencimento, Socio socio) {
		super();
		this.dataVencimento = dataVencimento;
		this.socio = socio;
	}

	@Override
	public String toString() {
		return "Mensalidade [id=" + id + ", dataVencimento=" + dataVencimento
				+ ", socio=" + socio + "]";
	}

}
